package com.example.makerspace.service;

import com.example.makerspace.dto.*;
import com.example.makerspace.vo.BasicDataVO;
import com.example.makerspace.vo.CoreDataVO;

import javax.servlet.http.HttpServletRequest;
import java.util.Map;

/**
 * @author River
 * @version 1.0
 * @date 2023/9/27 21:51
 * @description:
 */
public interface ApplicationService {
    Result addApplication(ApplicationDTO applicationDTO);
    Result addApplication(ApplicationV2DTO applicationV2DTO);
    Result checkApplication(HttpServletRequest request);
    Result checkApplicationV2(HttpServletRequest request,Integer competitionParentId);
    Result updateApplication(ApplicationDTO applicationDTO);
    Result updateApplication(Map<String, Object> params);

    Result save(ApplicationDTO applicationDTO);
    Result save(ApplicationV2DTO applicationV2DTO);
    Result submit(ApplicationDTO applicationDTO);
    Result submit(ApplicationV2DTO applicationV2DTO);

    PageResult competitions(PageRequest pageRequest);

    Result competitionDetail(Map<String, Object> params);

    Result authentication(UserAuthenticationDTO userAuthenticationDTO);

    Result certification(EnterpriseCertificationDTO enterpriseCertificationDTO);

    Result checkCompetition(PageRequest pageRequest);

    Result selectCompetition(HttpServletRequest request, Integer competitionId,Integer competitionParentId);

    Result processStatus(HttpServletRequest request, Integer competitionParentId);

    Result questionSubmit(CompetitionSubmissionDTO competitionSubmissionDTO);

    Result updateCompetition(UserCompetitionRelationShipDTO userCompetitionRelationShipDTO);

    Result questionsRegistration(ApplicationV2DTO applicationV2DTO);

    Result listApplication(PageRequest pageRequest);

    Result vagueQuery(PageRequest pageRequest);

    Result showUser(HttpServletRequest request);

    Result showAllQuestionSubmit(String username,Integer competitionId);

    Result showProducts(PageRequest pageRequest);

    Result addProducts(DemandDTO demandDTO);

    Result updateUser(UserInfoDTO userInfoDTO);

    Result checkQuestions(ApplicationV2DTO applicationV2DTO);

    Result updateProducts(DemandDTO demandDTO);

    Result deleteProducts(Integer id);

    Result uploadCertification(EnterpriseCertificationDTO enterpriseCertificationDTO);

    Result listCertification();

    Result updateCertification(EnterpriseCertificationDTO enterpriseCertificationDTO);

   Result detailProduct(Integer id, Integer type);



    Result addUserProducts(DemandDTO demandDTO);

    Result showUserProducts(PageRequest pageRequest);

    Result updateQuestionSubmit(CompetitionSubmissionDTO competitionSubmissionDTO);

    Result showCompetitionState(HttpServletRequest request);

    Result showUserCompetition(HttpServletRequest request, Integer competitionId);

    Result updateAvatar(UserDTO userDTO);


    Result addPraise(DemandDTO demandDTO);

    Result addCollection(DemandDTO demandDTO);

    Result showOtherProduct(Integer id, String username);

    Result showPraise(String username);

    Result showCollection(String username);


    Result replacementCertification(Integer id, String username);

    Result AllDeleteRecord();

    Result detailProductAndShow(Integer id);

    Result showAllPraiseUnRead(String username);

    Result userEnroll();

    Result authenticationData();

    Result questionsRegistrationData();

    Result openMarketData();

    Result productData();


    Result userEnrollAllData();

    Result enterpriseAllData();

    Result individualAllDate();

    Result openMarketAllData();

    Result competitionAllDate();

    Result webClicks();

    Result addWebClicks();

    Result showEnterprise(HttpServletRequest request);

    Result addBulletins(ProductBulletinsDTO bulletinsDTO);

    Result updateBulletins(ProductBulletinsDTO bulletinsDTO);

    Result deleteBulletins(Integer id);

    Result selectAllProductsBulletins(PageRequest pageRequest);

    Result selectProductsBulletins();

    Result artificialIntelligence();



    Result smsRegistration();


    Result deleteProductPicture(DeleteProductsDTO deleteProductsDTO);

    Result awaitReviewed();

    Result authenticationReviewed();

    Result userAreaMapData();

    Result awaitReviewedDate();

    Result authenticationReviewedDate();

    Result addShare(DemandDTO demandDTO);

    Result test();

    Result getBooks(HttpServletRequest request);

    Result userAreaMapData1();

    Result userEnrollDetailData();

    Result entDetail();

    Result individualDetail();

    Result questionsDetail();

    Result ProductDetail();

    Result smsDetail();

    Result productDetailByProvince(String province);

    Result productDetailShow();

    CoreDataVO coreData();

    CoreDataVO dataOverview();

    CoreDataVO realNamePendingReview();

    CoreDataVO productMap();

    CoreDataVO showProduct();

    CoreDataVO userChanges();

    CoreDataVO productSort();

    CoreDataVO productToReviewed();

    Result searchEnterprise(String entName);

    BasicDataVO roseChart();

    BasicDataVO roseChart1();

    BasicDataVO basicInformation();

    BasicDataVO productSortV();

    BasicDataVO callDay();

    BasicDataVO questionsData();

    BasicDataVO questionsRadar();

    BasicDataVO productComparison();

    BasicDataVO customerNumber();

    BasicDataVO regionalReleases();

    BasicDataVO radar();

    Result uploadDocument(StageFormDTO stageFormDTO);

    BasicDataVO userSign();

    BasicDataVO pointSort();

    Result showTable(HttpServletRequest request);

}
